package logica.grafo;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author aluno
 */


import java.awt.Color;
import java.awt.geom.Rectangle2D;
import javax.swing.BorderFactory;
import org.jgraph.graph.DefaultGraphCell;
import org.jgraph.graph.GraphConstants;

public class Vertice {

    private DefaultGraphCell cell;
    private String name;
    private float posicaoX;
    private float posicaoY;
    private int altura;
    private int largura;
    private int numeroCidade;

    public Vertice(String name, float posicaoX, float posicaoY, int altura, int largura, int numeroCidade) {
        cell = new DefaultGraphCell(name);
        this.name = name;
        this.posicaoX = posicaoX;
        this.posicaoY = posicaoY;
        this.altura = altura;
        this.largura = largura;
        this.numeroCidade = numeroCidade;

        //Set bounds
        GraphConstants.setBounds(cell.getAttributes(), new Rectangle2D.Double(
                this.posicaoX, this.posicaoY, this.largura, this.altura));

        //Deixa uma cor default.
        GraphConstants.setGradientColor(cell.getAttributes(), Color.WHITE);
        GraphConstants.setOpaque(cell.getAttributes(), true);

        //Set raised border
        //GraphConstants.setBorder(cell.getAttributes(), BorderFactory.createRaisedBevelBorder());
        GraphConstants.setBorderColor(cell.getAttributes(), Color.black);

        // Add a Floating Port
        cell.addPort();
    }

    public int getAltura() {
        return altura;
    }

    public void setAltura(int altura) {
        this.altura = altura;
    }

    public DefaultGraphCell getCell() {
        return cell;
    }

    public void setCell(DefaultGraphCell cell) {
        this.cell = cell;
    }

    public int getLargura() {
        return largura;
    }

    public void setLargura(int largura) {
        this.largura = largura;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getNumeroCidade() {
        return numeroCidade;
    }

    public void setNumeroCidade(int numeroCidade) {
        this.numeroCidade = numeroCidade;
    }

    public float getPosicaoX() {
        return posicaoX;
    }

    public void setPosicaoX(float posicaoX) {
        this.posicaoX = posicaoX;
    }

    public float getPosicaoY() {
        return posicaoY;
    }

    public void setPosicaoY(float posicaoY) {
        this.posicaoY = posicaoY;
    }

    public void defineCor(Color cor){
        if (cor != null) {
            GraphConstants.setGradientColor(cell.getAttributes(), cor);
            GraphConstants.setOpaque(cell.getAttributes(), true);
        }
    }

    public void defineRelevo(boolean temAltoRelevo){
        if (temAltoRelevo) {
            GraphConstants.setBorder(cell.getAttributes(), BorderFactory.createRaisedBevelBorder());
        } else {
            // Set black border
            GraphConstants.setBorderColor(cell.getAttributes(), Color.black);
        }
    }



}
